using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("WifiInfo")]
	public class WifiInfo : MonoBehaviour
	{
		public List<AccessPointInfo> m_lastKnownAccessPoints => method_3<Class271<AccessPointInfo>>("m_lastKnownAccessPoints")?.method_25();

		public bool m_waitingForResponse => method_2<bool>("m_waitingForResponse");

		public static int m_accessPointScanAttempts => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "WifiInfo", "m_accessPointScanAttempts");

		public string m_connectedSSID => method_4("m_connectedSSID");

		public bool IsAvailable => method_11<bool>("get_IsAvailable", Array.Empty<object>());

		public WifiInfo(IntPtr address, string className)
			: base(address, className)
		{
		}

		public WifiInfo(IntPtr address)
			: this(address, "WifiInfo")
		{
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public bool DoWifiScan()
		{
			return method_11<bool>("DoWifiScan", Array.Empty<object>());
		}

		public bool IsScanningWifi()
		{
			return method_11<bool>("IsScanningWifi", Array.Empty<object>());
		}

		public string GetConnectedSSIDString()
		{
			return method_13("GetConnectedSSIDString");
		}

		public void ReceiveVisibleAccessPoints(string accessPointData)
		{
			method_8("ReceiveVisibleAccessPoints", accessPointData);
		}

		public List<AccessPointInfo> GetLastKnownAccessPoints()
		{
			return method_14<Class271<AccessPointInfo>>("GetLastKnownAccessPoints", Array.Empty<object>())?.method_25();
		}
	}
}
